package Day_0202.Spring;

/**
 * @author zxc
 * @date 2023/02/02 22:15
 **/
public class Transaction_Spread {
    public static void main(String[] args) {
        /**
         * Spring事务的传播级别
         * ===》
         * Spring事务定义了7种传播机制：
         * 1. PROPAGATION_REQUIRED:
         * 默认的Spring事物传播级别，若当前存在事务，则加入该事务，若不存在事务，则新建一个事务。
         *
         * 2. PAOPAGATION_REQUIRE_NEW:
         * 若当前没有事务，则新建一个事务。若当前存在事务，则新建一个事务，新老事务相互独立。
         * 外部事务抛出异常回滚不会影响内部事务的正常提交。
         *
         * 3. PROPAGATION_NESTED:
         * 如果当前存在事务，则嵌套在当前事务中执行。如果当前没有事务，则新建一个事务，类似于REQUIRE_NEW。
         *
         * 4. PROPAGATION_SUPPORTS:
         * 支持当前事务，若当前不存在事务，以非事务的方式执行。
         *
         * 5. PROPAGATION_NOT_SUPPORTED:
         * 以非事务的方式执行，若当前存在事务，则把当前事务挂起。
         *
         * 6. PROPAGATION_MANDATORY:
         * 强制事务执行，若当前不存在事务，则抛出异常.
         *
         * 7. PROPAGATION_NEVER:
         * 以非事务的方式执行，如果当前存在事务，则抛出异常。
         *
         * ===》
         * Spring事务传播级别一般不需要定义，默认就是PROPAGATION_REQUIRED，除非在嵌套事务的情况下需要重点了解。
         */
    }
}
